#include "ManejadorDeJugadores.h"
#include "Lock.h"
#include <unistd.h>

ManejadorDeJugadores::ManejadorDeJugadores(std::vector<Cliente*> clientes,
		Mutex& mutexSala, unsigned& cantJugadoresConectados, bool& salaCorriendo)
: clientes(clientes), mutexSala(mutexSala),
  cantJugadoresConectados(cantJugadoresConectados), salaCorriendo(salaCorriendo)
{
	estaCorriendo = false;
}

void ManejadorDeJugadores::startMethod()
{
	//Saca del vector de clientes, jugadoresDeEnvio y jugadoresDeRecepcion
	//los clientes que se desconectaron
	estaCorriendo = true;
	while(estaCorriendo){
		sleep(3);
		for(unsigned i = 0; i < clientes.size(); i++){
			if(!clientes[i]->estaConectado()){
				Lock lock(mutexSala);
				clientes.erase(clientes.begin()+i);
				cantJugadoresConectados--;
				if(cantJugadoresConectados < 2){
					salaCorriendo = false;
				}
			}
		}
	}
}

void ManejadorDeJugadores::matar()
{
	estaCorriendo = false;
}

ManejadorDeJugadores::~ManejadorDeJugadores()
{
}

